
// 数据模型  
// 操作数据库的里面的表  


// Schema
// Schema主要用于定义MongoDB中集合Collection里文档document的结构,
// 理解为mongoose对表结构的定义   (不仅仅可以定义文档的结构和属性，还可以定义文档的实例方法、静态模型方法、复合索引等)
// 每个schema会映射到mongodb中的一个collection，schema不具备操作数据库的能力
// 定义Schema非常简单，指定字段名和类型即可，支持的类型包括以下8种


// String      字符串
// Number      数字    
// Date        日期
// Buffer      二进制
// Boolean     布尔值
// Mixed       混合类型
// ObjectId    对象ID    
// Array       数组

const mongoose = require('mongoose')
const Schema = mongoose.Schema

const user_schema = new Schema({
    username:String,
    age:Number,
    password:String,
    phone:String,
    email:String,
    birth:String,
    
})

// const list_schema = new Schema({
//     title:String,
//     id:Number,
//     context:String 
// })

const movie_schema = new Schema( {
    "genres":Array,
    "casts":Array,
    "directors": Array,
    "rating": Object,
    "title": String,
    "collect_count": Number,
    "original_title": String,
    "subtype": String,
    "year": String,
    "images":Object,
    "alt": String,
    "id": String
})


// Model 数据模型 才能操作数据库
// Model 模型模具 
// Model是由Schema编译而成的假想（fancy）构造器，具有抽象属性和行为
// Model的每一个实例（instance）就是一个document  document可以保存到数据库和对数据库进行操作
// model是由schema生成的模型，可以对数据库的操作  
// mongoose.model(`表名`, Schema) 

// 如果表名称的最后一个字符是字母 会变成复数  user = users   city = cities  yyoh => yyohes 
// 如果表名称的最后一个字符是数字，则不变  user1  = user1   list1 = list1 

exports.user_model =  mongoose.model('user',user_schema)

// exports.list_model = mongoose.model('list',list_schema)  // list => lists 

exports.movie_model = mongoose.model('movies',movie_schema)